/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package familytree.negocio;

import familytree.persistencia.pojos.Evento;
import familytree.persistencia.pojos.Nodo;
import java.io.File;
import java.util.List;

/**
 *
 * @author Jose
 */
public interface IEventoProcessor {
    
    /**
     Añade un evento Cumpleaños del nodo pasado como parámetro a los eventos de la familia
     */
    void anadirNacimiento(Nodo n);
    
    /**
      Añade un evento Aniversario de defunción del nodo pasado como parámetro a 
     * los eventos de la familia
     */
    void anadirDefuncion(Nodo n);
    
    /**
     Añade un evento a los eventos familiares
     */
    void anadirEvento(Evento e);
    
    /**
     Actualiza la fecha de nacimiento del nodo n en la tabla eventos
     */
    void actualizaNacimiento(Nodo n);
    
     /**
     Actualiza la fecha de defunción del nodo n en la tabla eventos
     */
    void actualizaDefuncion(Nodo n);
    
    /**
     Recupera todos los eventos en forma de lista
     */
    List<Evento> getAll();
    
    /**
     Recupera todos los eventos de una familia en forma de lista
     */
    List<Evento> getEventosPorIdArbol(String idArbol);
    
    /**
     Crea un fichero Zip que contiene otro ics con los eventos de la familia
     */
    File creaCalendario(String ruta, String idArbol);
    
    /**
     Crea un fichero xml con los eventos de la familia
     */
    File creaXmlCalendario(String idArbol);
}
